package com.cjq.domain;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.ibatis.type.JdbcType;

/**
 * 
 * @TableName questionnaire
 */
@Data
public class Questionnaire implements Serializable {

    //一对一查询时封装用户信息
    @TableField(exist = false)
    @ExcelProperty("学号或工号")
    private String username;

    @TableField(exist = false)
    @ExcelProperty("姓名")
    private String realName;
    /**
     * 
     */
    @TableId(value = "id",type = IdType.AUTO)   //必须要指定
    @ExcelIgnore
    private Integer id;

    /**
     * 用户id
     */
    @ExcelIgnore
    private Integer userId;

    /**
     * 打卡日期
     */
    @TableField(jdbcType = JdbcType.DATE)
    @JsonFormat(timezone = "GMT+8") //显示的指定东八区
    @ExcelProperty("上报日期")
    private Date clockInDate;

    /**
     * 连续打卡几天
     */
    @ExcelProperty("持续上报天数")
    private Integer duration;

    /**
     * 1居民身份证，2军官证，3士兵证，4文职干部证，5部队离休证，6香港特区护照/身份证，7澳门特区护照/身份证，8台湾居民来往大陆通行证，9境外永久居住证，10护照，11户口簿，12其他
     */
    @ExcelProperty("证据类型")
    private Integer credentialType;

    /**
     * 证件号码
     */
    @ExcelProperty("证据号码")
    private String credentialNum;

    /**
     * 校区
     */
    @ExcelProperty("校区")
    private String campus;

    /**
     * 家庭住址
     */
    @ExcelProperty("家庭住址")
    private String address;

    /**
     * 用于接收前端数据，存入数据库时把需要把它改为json格式的String存入address
     */
    @TableField(exist = false)
    @ExcelIgnore
    private Object addressJson;



    /**
     * 手机号码
     */
    @ExcelProperty("手机号码")
    private String phone;

    /**
     * 紧急联系人
     */
    @ExcelProperty("紧急联系人")
    private String urgentContact;

    /**
     * 紧急联系人手机号码
     */
    @ExcelProperty("紧急联系人手机号码")
    private String urgentPhone;

    /**
     * 1良好；2异常 体温超过37.5摄氏度 3异常咳嗽 4异常头晕 5异常腹泻；6异常乏力 7异常 同时包含两种以上症状
     */
    @ExcelProperty("身体状况")
    private Integer physicalStatus;

    /**
     * 近14天到达重点区，1是，0否
     */
    @ExcelProperty("近14天到达重点区")
    private Integer reachDangerZone;

    /**
     * 途径的重点区
     */
    @ExcelProperty("途径的重点区")
    private String dangerZone;

    /**
     * 用于接收前端数据，存入数据库时把需要把它改为json格式的String存入dangerZone
     */
    @TableField(exist = false)
    @ExcelIgnore
    private Object dangerZoneJson;

    /**
     * 最后离开重点区时间
     */
    @ExcelProperty("最后离开重点区时间")
    @TableField(jdbcType = JdbcType.DATE)
    @JsonFormat(timezone = "GMT+8") //显示的指定东八区
    private Date leaveDangerTime;

    /**
     * 近14天是否接触过出入重点区的人
     */
    @ExcelProperty("近14天是否接触过出入重点区的人")
    private Integer touchDangerPeople;

    /**
     * 最后接触出入过重点区的人时间
     */
    @TableField(jdbcType = JdbcType.DATE)
    @JsonFormat(timezone = "GMT+8") //显示的指定东八区
    @ExcelProperty("最后接触出入过重点区的人时间")
    private Date lastTouchPeopleTime;

    /**
     * 近14天是否接触过疑似或确诊病例
     */
    @ExcelProperty("近14天是否接触过疑似或确诊病例")
    private Integer touchCase;

    /**
     * 最后接触时间区时间
     */
    @TableField(jdbcType = JdbcType.DATE)
    @JsonFormat(timezone = "GMT+8") //显示的指定东八区
    @ExcelProperty("最后接触时间区时间")
    private Date lastTouchCaseTime;

    /**
     * 是否隔离医学观察
     */
    @ExcelProperty("是否隔离医学观察")
    private Integer isolation;

    /**
     * 终止观察时间
     */
    @TableField(jdbcType = JdbcType.DATE)
    @JsonFormat(timezone = "GMT+8") //显示的指定东八区
    @ExcelProperty("终止观察时间")
    private Date endTime;

    /**
     * 今日体温
     */
    @ExcelProperty("今日体温")
    private Double temp;

    @ExcelIgnore
    private static final long serialVersionUID = 1L;

}